/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package manager;

import java.util.ArrayList;
/*
 * 
 * Media
 * Matthieu PERRIN
 * Contient une liste de founisseur pour un media
 * 
 */

public class Media {
    
    private String name;
    private String ID;
    ArrayList<Provider> ListProvider = new ArrayList<Provider>();
    
    public Media(String ID, String name)
    {
        this.ID = ID;
        this.name = name;
    }
    
    // Ajoute un fournisseur du media
    public void AddProvider(String ip )
    {
        ListProvider.add(new Provider(ip));
    }
    
    // Supprime un fournisseur du media
    public void delProvider(String adresseIP)
    {
        
        int elmt = -1;
        
        for ( int i=0; i<ListProvider.size(); i++)
        {
            if ( ListProvider.get(i).GetIP().equals(adresseIP))
                elmt = i;
        }
        
        if ( elmt >= 0)        
            ListProvider.remove(elmt);
        
    }
    
    // Renvoie le fournisseur ayant fournit le moins de client
    public String getProvider()
    {
        if ( ! ListProvider.isEmpty() )
        {
            int ProviderNbClientMinimum = 0;
            int index_provider = 0;

            for (int i = 0; i < ListProvider.size(); i++) {
                if (ListProvider.get(i).GetNbClient() < ProviderNbClientMinimum) {
                    ProviderNbClientMinimum = ListProvider.get(i).GetNbClient();
                    index_provider = i;
                }
            }

            ListProvider.get(index_provider).IncrementeNbClient();
            return ListProvider.get(index_provider).GetIP();
        }
        return null;
    }
    
    public String getID()
    {
        return ID;
    }
}
